﻿using System.Collections.Generic;
using System.IO;

namespace MangaUtils
{
	/// <summary>
	/// Class, which describes folder with its subfolders.
	/// </summary>
	public class Folder
	{
		/// <summary>
		/// Absolute path to current folder
		/// </summary>
		public string Path;
		/// <summary>
		/// List of subfolders (if any).
		/// </summary>
		public List<Folder> Subfolders;

		/// <summary>
		/// Default constructor - nothing special, just initializing.
		/// </summary>
		public Folder()
		{
			Path = string.Empty;
			Subfolders = new List<Folder>();
		}

		/// <summary>
		/// Constructor which scans recursively given folder.
		/// </summary>
		/// <param name="path">Absolutte path to folder.</param>
		public Folder(string path)
		{
			Path = path;
			Subfolders = new List<Folder>();
			var dirs = new List<string>(Directory.GetDirectories(path));
			foreach (var dir in dirs)
			{
				var folder = new Folder(dir);
				Subfolders.Add(folder);
			}
		}

		/// <summary>
		/// Overriden method, which returns name of current folder.
		/// </summary>
		/// <returns>Name of current folder.</returns>
		public override string ToString()
		{
			int lastSlashPos = Path.LastIndexOf('\\');
			var str = Path.Substring(lastSlashPos + 1);
			return str;
		}
	}
}
